package work.mediway.mdm.biz.mapper.biz;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

import work.mediway.mdm.biz.dto.biz.DictEditLogDTO;
import work.mediway.mdm.biz.dto.biz.PatientEditLogDTO;
import work.mediway.mdm.biz.entity.biz.MdmEditLog;
import work.mediway.mdm.biz.vo.biz.DictEditLogVO;
import work.mediway.mdm.biz.vo.biz.PatientEditLogVO;

/**
 * @author zhongyj <1126834403@qq.com><br/>
 * @date 2021/1/25
 */
@Mapper
public interface MdmEditLogMapper extends BaseMapper<MdmEditLog> {

    /**
     * 获取字典变动日志
     *
     * @param page       Page<DictEditLogVO>
     * @param editLogDTO DictEditLogDTO
     * @return List<DictEditLogVO>
     */
    List<DictEditLogVO> listDictChangeLog(@Param("page") Page<DictEditLogVO> page, @Param("editLogDTO") DictEditLogDTO editLogDTO);

    /**
     * 获取主数据患者变动日志
     *
     * @param page       Page<PatientEditLogVO>
     * @param editLogDTO DictEditLogDTO
     * @return List<DictEditLogVO>
     */
    List<PatientEditLogVO> listPatientChangeLog(Page<PatientEditLogVO> page, @Param("editLogDTO") PatientEditLogDTO editLogDTO);

    /**
     * 查找最新的一条数据
     *
     * @param tableCode 表名
     * @param id        表内rowId
     * @return MdmEditLog
     */
    MdmEditLog findOneLastedByTableRowId(@Param("tableCode") String tableCode, @Param("id") String id);
}